package com.tanhan.mindapp.dao;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result<T> {
  /* 定义一个统一响应结果的实体类 */
  // 返回验证码 code = 200 则说明返回成功
  private int code;
  // 返回描述字符串 msg = "ok" 则说明返回成功
  private String msg;
  // 响应数据(支持泛型)
  private T data;

  // 成功静态方法(有返回值)
  public static <T> Result<T> success(T data) {
    return new Result<>(200, "ok", data);
  }

  // 成功静态方法(无返回值)
  public static <T> Result<T> success() {
    return new Result<>(200, "ok", null);
  }

  // 错误静态方法(无错误提示)
  public static <T> Result<T> error() {
    return new Result<>(9999, "服务器异常", null);
  }

  // 错误静态方法(有错误提示)
  public static <T> Result<T> error(int code, String msg) {
    return new Result<>(code, msg, null);
  }
}
